<?php
/*****************************************************************************
**	Файл:	Константы и проверка номера сервера								**
**	Автор:	Dark Dayver														**
**	Версия:	1.0b															**
**	Дата:	25/12-2009														**
*****************************************************************************/
if (IN_P_ENIGMA)
{
	die('HACK!');
}

// Включаем сессии
session_start();

// Базы данных
define ('DB_WORK', $config['dbname_w']);
define ('DB_TOWN', $config['dbname_t']);
define ('DB_USER', $config['dbname_u']);
define ('DB_QUEUE', $config['dbname_q']);

// Общие таблицы для серверов
define ('TBL_SERVER', 'server_name'); // список серверов
define ('TBL_NEWS', 'news'); // новости
define ('TBL_MENU', 'menu'); // основное меню
define ('TBL_CONFIG', 'config'); // настройки
define ('TBL_GALLERY_AVATAR', 'gallery_avatar'); // галлереи аватаров

// Проверка существования сервера и, при необходимости, сброс переменной номера сервера
$config['server_no'] = false;
if (preg_match("/^s([0-9]+)\./i", GetEnv("HTTP_HOST"), $matches))
{
	$config['server_no'] = $matches[1];
}
if ($config['server_no'])
{
	$db->select('*', DB_WORK, TBL_SERVER);
	$db->where('`id` = ' . $config['server_no']);
	$db->query();
	if (!$db->res_row())
	{
		$config['site_url'] = str_replace('s' . $config['server_no'] . '.', '', $config['site_url']);
		$config['server_no'] = false;
		apache_setenv("HTTP_HOST", str_replace('s' . $config['server_no'] . '.', '', GetEnv("HTTP_HOST")));
	}
	$db->clean();
}

// Номер сервера (false - главная страница списка серверов)
define ('SERVER_NO', $config['server_no']);

// Что использовать как конец строки (для Win-серверов)
if (!defined('PHP_EOL')) define ('PHP_EOL', strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? chr(13) . chr(10) : chr(10));

// Регекспы
define('REG_LOGIN', '^[\u0030-\u0039\u0041-\u005A\u0061-\u007A]{1}[\u0020\u0030-\u0039\u0041-\u005A\u005F\u0061-\u007A]*[\u0030-\u0039\u0041-\u005A\u0061-\u007A]?\$');
define('REG_NAME', '^[\u0021-\u10FFFF]{1}[\u0020-\u10FFFF]*[\u0021-\u10FFFF]?\$');
define('REG_EMAIL', '^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\$');
define('ERROR_FIELD', ' ui-state-error');
// Страницы, доступные без входа на сервер
$all_aviable = array('main', 'help', 'news', 'statistic');

// Шаблон имен таблиц
define ('TPL_NAME_TBL', 's%d_%s'); // s#_name

// Таблицы
if (SERVER_NO)
{
	// Таблицы в рабочей БД
	define ('TBL_FACTION', sprintf(TPL_NAME_TBL, SERVER_NO, 'faction'));
	// Таблицы в пользовательской БД
	define ('TBL_USERS', sprintf(TPL_NAME_TBL, SERVER_NO, 'user'));
	define ('TBL_ALLIANCE', sprintf(TPL_NAME_TBL, SERVER_NO, 'alliance'));
	define ('TBL_ALLIANCE_USER', sprintf(TPL_NAME_TBL, SERVER_NO, 'alliance_user'));
	define ('TBL_PERMISSION', sprintf(TPL_NAME_TBL, SERVER_NO, 'user_permission'));
	define ('TBL_GROUP', sprintf(TPL_NAME_TBL, SERVER_NO, 'group_permission'));
	// Таблицы в БД городов
	// Таблицы в БД заданий
}
?>
